package com.xbts.screen.service;

import com.xbts.common.core.enums.ConsumeTypeEnum;
import com.xbts.common.core.enums.DateTypeEnum;
import com.xbts.common.core.enums.WorkshopTypeEnum;
import com.xbts.common.core.web.domain.BaseHistogramResult;
import com.xbts.common.core.web.domain.BasePieChartResult;
import com.xbts.common.core.web.domain.BaseRankingResult;
import com.xbts.screen.domain.vo.ScreenConsumeHistogramVO;
import com.xbts.screen.domain.vo.ScreenQualityDetailsVO;

import java.util.List;
import java.util.Map;

/**
 * 综合大屏
 */
public interface ISyntheticScreenServer {

    /**
     * 大屏-业务信息
     */
    BaseHistogramResult screenBusinessDetails();

    /**
     * 业务-排行-按时间类型
     */
    List<BaseRankingResult> businessRanking(DateTypeEnum dateType);
    /**
     * 业务-详情-按时间类型
     */
    BaseHistogramResult businessDetailsByDateType(DateTypeEnum dateType);
    /**
     * 业务-统计-按时间类型
     */
    List<BasePieChartResult> businessStatistics(DateTypeEnum dateType);
    /**
     * 产能-详情-按时间类型
     */
    BaseHistogramResult capacityDetailsByDateType(DateTypeEnum dateType);
    /**
     * 产能-车间详情-按时间类型
     */
    BaseHistogramResult capacityWorkshopDetailsByDateType(DateTypeEnum dateType, String value);
    /**
     * 品质-总体-详情-按时间类型
     */
    List<BaseHistogramResult> consumeOverallDetailsByDateType(DateTypeEnum dateType);
    /**
     * 品质-车间总体详情-按时间类型
     */
    List<BaseHistogramResult> qualityWorkshopOverallDetailsByDateType(DateTypeEnum dateType);
    /**
     * 品质-车间详情-按时间类型
     */
    List<BaseHistogramResult> qualityWorkshopDetailsByDateType(DateTypeEnum dateType, String value);
    /**
     * 品质-车间详情-贡献度
     */
    Map<String, Object> qualityWorkshopContributeByDateType(DateTypeEnum dateType, String value);
    /**
     * 大屏-产能信息
     */
    BaseHistogramResult screenCapacityDetails();
    /**
     * 大屏-品质信息
     */
    List<ScreenQualityDetailsVO> screenQualityDetails();
    /**
     * 大屏-品质分析-近6月
     */
    BaseHistogramResult screenQualityAnalyseA();
    /**
     * 大屏-品质分析-月周天
     */
    BaseHistogramResult screenQualityAnalyseB();
    /**
     * 大屏-成本信息-饼状图
     */
    List<BasePieChartResult> screenCostDetailsA(List<String> time);
    /**
     * 大屏-成本信息-柱状图
     */
    BaseHistogramResult screenCostDetailsB(DateTypeEnum dateTypeEnum);
    /**
     * 成本-总体-详情-按时间类型
     */
    BaseHistogramResult costOverallDetailsByDateType(DateTypeEnum dateType);
    /**
     * 成本-分车间-详情-按时间类型-按成本类型
     */
    BaseHistogramResult costWorkshopOverallDetailsByDateTypeAndConsumeType(DateTypeEnum dateType, ConsumeTypeEnum consumeType);
    /**
     * 成本-车间详情-按时间类型和车间类型
     */
    BaseHistogramResult costWorkshopDetailsByDateTypeAndConsumeType(DateTypeEnum dateType, ConsumeTypeEnum consumeType, String value);
    /**
     * 大屏-能耗信息
     */
    ScreenConsumeHistogramVO screenConsumeDetails();

    /**
     * 能耗-详情-按时间类型
     */
    BaseHistogramResult consumeDetailsByDateType(DateTypeEnum dateType, ConsumeTypeEnum consumeType);

    /**
     * 能耗-车间详情-按时间类型
     */
    BaseHistogramResult consumeWorkshopDetailsByDateType(DateTypeEnum dateType, ConsumeTypeEnum consumeType, String deptName);
}
